Modern applications are characterized by multiple components deployed across multiple network tiers accessed by users across a network. Examples of applications include enterprise applications, such as Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), Supply Chain Management (SCM), and Online Banking, Brokerage, Insurance and Retailing applications. An application typically provides a variety of business functions that users may execute. For example, an online stock trading application may provide some of the following business functions: log in, display account status, retrieve stock prospectus, sell stock, buy stock and log out.
When a user executes such a business function, a sequence of transactions is performed by the application, with each transaction consisting of a source node transmitting a request (via network message) to a destination node often on another tier, and perhaps waiting for a reply message. The destination node processes the request and in the processing consumes local (server) resources such as CPU, disk input/output, and memory and may generate subsequent requests (subtransactions) to other nodes.
The time that elapses between the user executing the business function (submitting his or her request) and the display of the results on the user's workstation is called the end user response time. The end user response time is typically the most critical measure of end user satisfaction with application performance. If the response times are too long, end users will be unsatisfied and many will take their business elsewhere.
In order to maintain and improve good end user performance, application and system managers must understand the current performance of their applications, be able to identify and predict current and future performance problems, and evaluate potential solutions to those problems. Any given application performance problem is a reflection of application performance, data size, network performance and network congestion. Determining which domain of responsibility a particular application performance problem falls into is a complex evaluation of the constituent parts of the end user response time measure, since modern N-tiered applications typically run across multiple interdependent servers. Problems can be located on any of those servers and can originate from multiple sources, such as, but not limited to, the client or server environment, the network or the application software.
Currently, there are performance monitoring tools which monitor a wide range of performance data. While such tools are useful in identifying certain performance issues, in an N-tiered application, at any given moment, there may be hundreds or thousands of concurrent transactions within a single tier that need to be analyzed over a short period of time. Next, the results of such analysis can be used to navigate through each of the individual tiers of the network to determine a source of the problem. Thus, existing monitoring tools are limited in their diagnostic capabilities with respect to N-tiered applications, since in order to identify a root cause of any failure it is necessary to manually analyze potentially hundreds of concurrent transactions at each network tier. This is a very complex, error-prone and time consuming task. In addition, such tasks can be performed only by the most experienced IT professionals.
Accordingly, it would be advantageous to provide visual representations of the constituent parts of end user response time measurements that enable a wider range of users to identify the cause or causes of various performance issues.